package statemachine;

/**
 * 已投币状态类
 * 
 * @author guweiqiang
 * 2018年7月4日
 */
public class HasCoinState implements State {

	private Machine machine;

	public HasCoinState(Machine machine) {
		this.machine = machine;
	}
	
	// 投币
	public void insertCoin() {
		System.out.println("请不要重复投币!");
	}

	// 退回硬币
	public void ejectCoin() {
		System.out.println("已退回硬币！");
		machine.setState(machine.getNonCoinState()); // 重新设置为未投币状态
	}

	// 转动摇柄
	public void turnCrank() {
		System.out.println("转动了摇柄");
		machine.setState(machine.getSoldState()); // 设置机器状态为正在出售
	}

	// 喷出糖果
	public void dispense() {
		System.out.println("请转动摇柄！");
	}

}
